package ZUOYE0426;

import java.util.Scanner;

public class 幸运抽奖 {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		String username = "a", password = "b";
		boolean luck = true;
		int number = 0, yournumber = 0;
		int premise = 1;
		// premise等于2时才可以进行第二部，等于3才可以进行第三步
		while (true) {
			System.out.println("*****欢迎进入奖客富翁系统*****");
			System.out.println("\t  1.注册\n\t  2.登录\n\t  3.抽奖");
			System.out.println("*****************************");
			System.out.print("请选择菜单：");
			// 输出信息
			int num = in.nextInt();
			// 输入选择号码
			switch (num) {
			case 1: {
				// 1.开始进行注册
				System.out.println("[奖客富翁系统>注册]");
				System.out.println("请填写个人注册信息：");
				System.out.print("用户名：");
				username = in.next();
				// 输入自己设置的用户名
				System.out.print("密码：");
				password = in.next();
				// 输入自己设置的密码
				number = (int) ((Math.random() * 9000) + 1000);
				// 随机设置自己的4位数会员号
				System.out.println();
				System.out.println("注册成功，请记好您的会员卡号");
				System.out.println("用户名\t密码\t会员卡号");
				System.out.println(username + "\t" + password + "\t" + number);
				// 输出用户名、密码和会员卡号
				premise += 1;
				// 第一步完成，让premise=2，去进行第二步
				break;
			}
			case 2: {
				// 开始进行登录
				if (premise == 2) {
					// 只有premise等于2才能进行
					for (int a = 1; a <= 3; a += 1) {
						// 设置循环，输入密码最多3次
						System.out.println("[奖客富翁系统>登录]");
						System.out.print("请输入用户名：");
						String yourusername = in.next();
						// 输入登录的用户名
						System.out.print("请输入密码：");
						String yourpassword = in.next();
						// 输入登录的密码
						System.out.println();
						if (yourusername.equals(username) && yourpassword.equals(password)) {
							System.out.println("欢迎您：" + username);
							premise++;
							// 当用户名和密码符合时，登录完成
							break;
						} else {
							if (a >= 3) {
								System.out.println("请重新注册");
								// 3次都失败，提示重新注册
								premise = 1;
								// premise回归1
								break;
							}
							System.out.println("输入错误，重新输入");
							// 第1、2次失败输出输入错误，重新输入
						}
					}
				} else {
					System.out.println("您未注册，请先注册");
					// 如果premise不等2，提示用户注册
				}
				break;
			}
			case 3: {
				// 开始进行抽奖
				if (premise == 3) {
					System.out.println("[奖客富翁系统>抽奖]");
					System.out.print("请输入您的卡号：");
					int c;
					for (c = 1; c <= 3; c++) {
						// 设置循环，输入卡号只有3次机会
						yournumber = in.nextInt();
						// 输入自己的卡号，必须和之前的相等
						if (yournumber == number) {
							// 3次以内则表示输入正确
							System.out.print("本日的幸运数字为：");
							int arr[] = new int[5];
							// 设置一组幸运号码，一共5个
							for (int b = 0; b < arr.length; b++) {
								arr[b] = (int) ((Math.random() * 9000) + 1000);
								System.out.print(arr[b] + "\t");
								// 循环输出着5个随机号码
								if (arr[b] == yournumber) {
									luck = false;
									// 如果自己的号码与其中一个相等，则luck=false
								}
							}
							System.out.println();
							if (luck == false) {
								System.out.println("恭喜！您成为了本日的幸运会员！");
								// 输出结果
							} else {
								System.out.println("抱歉！您不是本日的幸运会员！");
								// 输出结果
							}
							System.out.println("系统推出，谢谢使用！");
							break;
						} else {
							if (c >= 3) {
								System.out.println("请重新注册：");
								// 如果3次都失败，提示重新注册
								premise = 1;
								// 此时premise为3，但是得归1
								break;
							}
							System.out.println("输入错误，重新输入:");
							// 前两次失败，提示输入错误，重新输入。第3次失败则不提示
						}
					}
				} else if (premise == 2) {
					System.out.println("您未登录，请先登录");
					// 有的用户有毛病，注册了却不登录，此时premise=2，只能提示先登录
				} else if (premise == 1) {
					System.out.println("您未注册，请先注册");
					// 也有的用户有毛病，不注册也不登录，此时premise=1，只能提示先注册
				}
				break;
			}
			default: {
				System.out.println("您的输入有误,请重新输入");
				// 只有1、2、3，这几个选择，有的用户瞎选，只能提示了
				break;
			}
			}
			System.out.print("继续么？(y/n):");
			// 输出提问是否继续
			String answer = in.next();
			// 回答接受y或n
			if (answer.equals("y")) {
				// 让继续呗
			} else if (answer.equals("n")) {
				System.out.println("系统推出，谢谢使用！\n");
				break;
			}
		}
	}
}
